The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
A solid-state drive (SSD) is a data storage device that stores data in a solid-state memory, such as a NAND flash memory. A solid-state drive (SSD) typically includes a drive interface, a buffer, a control module and solid-state memory. During a write operation, the drive interface receives data from a host interface of a host (e.g., a computer). The data is initially stored in the buffer and then transferred to the solid-state memory based on a write command.
A data “bottleneck” can occur at the solid-state memory due to differences between program times or storage rates of solid-state memory and transmission rates of the host. Storage rates of solid-state memory can be slower than transmission rates of a host. The transmission rates of a host vary and in general can not be directly adjusted by a control module of a SSD. Also, a control module of a SSD is not informed of the transmission rates of the host.
In addition, the storage rates of a solid-state memory vary and in general can not be directly adjusted by a control module of a SSD. Solid state memory of different types and of the same type can have different storage rates. Memory devices (e.g., memory chips) of the same solid-state memory can also have different storage rates. Variance in storage rates can be due to age and usage of solid-state devices.
The inability of the control module to directly control transmission rates of the host and the storage rates of the solid-state memory limits the ability of the control module to improve writing and/or access efficiency. The control module may, for example, stop accessing data from the host and/or signal the host to stop sending data to the SSD when the buffer is full. Although this indirectly regulates output of the host, overall storage times are increased. Thus, data transfer efficiency between the host and the solid-state memory can be limited.